}
return file->fileread(buf, size, members, file);
}
-
// This probably makes an unnecessary alloc/copy, but keeps the above (kinda
+
// goofy) calling signature.
gbsize_t
gbfread(QString& buf, const gbsize_t size,
return retval;
}
+QByteArray gbfreadbuf(gbsize_t size, gbfile* file) {
+ QByteArray tmp;
+ tmp.resize(size);
+ gbsize_t nbytes = gbfread(tmp.data(), 1, size, file);
+
+ if (nbytes != size) {
+ Fatal() << file->module << "Attempted to read " << size <<
+ "bytes, but only " << nbytes << "were available.";
+ }
+ return tmp;
+}
+
/*
* gbvfprintf: (as vfprintf)
*/
gbsize_t gbfread(void* buf, gbsize_t size, gbsize_t members, gbfile* file);
gbsize_t gbfread(QString& buf, gbsize_t size, gbsize_t members, gbfile* file);
+// Convenience wrapper for above, but ignoring the possibility of endian swapping.
+QByteArray gbfreadbuf(gbsize_t size, gbfile* file);
int gbfgetc(gbfile* file);
QString gbfgets(char* buf, int len, gbfile* file);